package com.ourteam.product.model.service;

/**
 *
 * Template Name : 业务服务实现基类
 * Template Version : 1
 * Template Last Modfiy Date : Mon Nov 06 10:52:01 IRKT 2017
 * Auto Generate Date : 2017-11-09 15:16:35
  * Warning ! This file will be overwrite when regenerate !
  *
 */
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.transaction.annotation.Transactional;


abstract class AbstractProductModelService extends net.service.DefaultServiceImpl
    implements IProductModelService {
    protected static final Log logger = LogFactory.getLog(AbstractProductModelService.class);

    /**
     * ProductModelDomain DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelDomainDAO productModelDomainDao;

    /**
     * ProductModelPackage DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelPackageDAO productModelPackageDao;

    /**
     * ProductModelObject DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelObjectDAO productModelObjectDao;

    /**
     * ProductModelObjectRelate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelObjectRelateDAO productModelObjectRelateDao;

    /**
     * ProductModelProperty DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelPropertyDAO productModelPropertyDao;

    /**
     * ProductModelPropertyRelate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelPropertyRelateDAO productModelPropertyRelateDao;

    /**
     * ProductModelService DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelServiceDAO productModelServiceDao;

    /**
     * ProductModelServiceParameter DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelServiceParameterDAO productModelServiceParameterDao;

    /**
     * ProductDatabase DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductDatabaseDAO productDatabaseDao;

    /**
     * ProductModelServiceTemplate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelServiceTemplateDAO productModelServiceTemplateDao;

    /**
     * ProductModelServiceTemplateItem DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelServiceTemplateItemDAO productModelServiceTemplateItemDao;

    /**
     * ProductModelServiceParameterTemplate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelServiceParameterTemplateDAO productModelServiceParameterTemplateDao;

    /**
     * ProductDatabaseDataTypeMap DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductDatabaseDataTypeMapDAO productDatabaseDataTypeMapDao;

    /**
     * ProductModelCodeTemplate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelCodeTemplateDAO productModelCodeTemplateDao;

    /**
     * ProductModelServiceFeatureRelate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelServiceFeatureRelateDAO productModelServiceFeatureRelateDao;

    /**
     * ProductModelAction DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelActionDAO productModelActionDao;

    /**
     * ProductModelBase DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelBaseDAO productModelBaseDao;

    /**
     * ProductModelBaseRelate DAO Instance
    */
    protected com.ourteam.product.model.dao.IProductModelBaseRelateDAO productModelBaseRelateDao;

    /**
     *  SystemEventLogService Instance
    */
    protected com.ourteam.system.service.ISystemEventLogService systemEventLogService;

    /**
     *  SysUserService Instance
    */
    protected com.ourteam.system.service.ISysUserService sysUserService;

    /**
         *  Get ProductModelDomain DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelDomainDAO getProductModelDomainDao() {
        return productModelDomainDao;
    }

    /**
         *  Set ProductModelDomain DAO Instance
         */
    public void setProductModelDomainDao(
        com.ourteam.product.model.dao.IProductModelDomainDAO aDao) {
        productModelDomainDao = aDao;
    }

    /**
         *  Get ProductModelPackage DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelPackageDAO getProductModelPackageDao() {
        return productModelPackageDao;
    }

    /**
         *  Set ProductModelPackage DAO Instance
         */
    public void setProductModelPackageDao(
        com.ourteam.product.model.dao.IProductModelPackageDAO aDao) {
        productModelPackageDao = aDao;
    }

    /**
         *  Get ProductModelObject DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelObjectDAO getProductModelObjectDao() {
        return productModelObjectDao;
    }

    /**
         *  Set ProductModelObject DAO Instance
         */
    public void setProductModelObjectDao(
        com.ourteam.product.model.dao.IProductModelObjectDAO aDao) {
        productModelObjectDao = aDao;
    }

    /**
         *  Get ProductModelObjectRelate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelObjectRelateDAO getProductModelObjectRelateDao() {
        return productModelObjectRelateDao;
    }

    /**
         *  Set ProductModelObjectRelate DAO Instance
         */
    public void setProductModelObjectRelateDao(
        com.ourteam.product.model.dao.IProductModelObjectRelateDAO aDao) {
        productModelObjectRelateDao = aDao;
    }

    /**
         *  Get ProductModelProperty DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelPropertyDAO getProductModelPropertyDao() {
        return productModelPropertyDao;
    }

    /**
         *  Set ProductModelProperty DAO Instance
         */
    public void setProductModelPropertyDao(
        com.ourteam.product.model.dao.IProductModelPropertyDAO aDao) {
        productModelPropertyDao = aDao;
    }

    /**
         *  Get ProductModelPropertyRelate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelPropertyRelateDAO getProductModelPropertyRelateDao() {
        return productModelPropertyRelateDao;
    }

    /**
         *  Set ProductModelPropertyRelate DAO Instance
         */
    public void setProductModelPropertyRelateDao(
        com.ourteam.product.model.dao.IProductModelPropertyRelateDAO aDao) {
        productModelPropertyRelateDao = aDao;
    }

    /**
         *  Get ProductModelService DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelServiceDAO getProductModelServiceDao() {
        return productModelServiceDao;
    }

    /**
         *  Set ProductModelService DAO Instance
         */
    public void setProductModelServiceDao(
        com.ourteam.product.model.dao.IProductModelServiceDAO aDao) {
        productModelServiceDao = aDao;
    }

    /**
         *  Get ProductModelServiceParameter DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelServiceParameterDAO getProductModelServiceParameterDao() {
        return productModelServiceParameterDao;
    }

    /**
         *  Set ProductModelServiceParameter DAO Instance
         */
    public void setProductModelServiceParameterDao(
        com.ourteam.product.model.dao.IProductModelServiceParameterDAO aDao) {
        productModelServiceParameterDao = aDao;
    }

    /**
         *  Get ProductDatabase DAO Instance
         */
    public com.ourteam.product.model.dao.IProductDatabaseDAO getProductDatabaseDao() {
        return productDatabaseDao;
    }

    /**
         *  Set ProductDatabase DAO Instance
         */
    public void setProductDatabaseDao(
        com.ourteam.product.model.dao.IProductDatabaseDAO aDao) {
        productDatabaseDao = aDao;
    }

    /**
         *  Get ProductModelServiceTemplate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelServiceTemplateDAO getProductModelServiceTemplateDao() {
        return productModelServiceTemplateDao;
    }

    /**
         *  Set ProductModelServiceTemplate DAO Instance
         */
    public void setProductModelServiceTemplateDao(
        com.ourteam.product.model.dao.IProductModelServiceTemplateDAO aDao) {
        productModelServiceTemplateDao = aDao;
    }

    /**
         *  Get ProductModelServiceTemplateItem DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelServiceTemplateItemDAO getProductModelServiceTemplateItemDao() {
        return productModelServiceTemplateItemDao;
    }

    /**
         *  Set ProductModelServiceTemplateItem DAO Instance
         */
    public void setProductModelServiceTemplateItemDao(
        com.ourteam.product.model.dao.IProductModelServiceTemplateItemDAO aDao) {
        productModelServiceTemplateItemDao = aDao;
    }

    /**
         *  Get ProductModelServiceParameterTemplate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelServiceParameterTemplateDAO getProductModelServiceParameterTemplateDao() {
        return productModelServiceParameterTemplateDao;
    }

    /**
         *  Set ProductModelServiceParameterTemplate DAO Instance
         */
    public void setProductModelServiceParameterTemplateDao(
        com.ourteam.product.model.dao.IProductModelServiceParameterTemplateDAO aDao) {
        productModelServiceParameterTemplateDao = aDao;
    }

    /**
         *  Get ProductDatabaseDataTypeMap DAO Instance
         */
    public com.ourteam.product.model.dao.IProductDatabaseDataTypeMapDAO getProductDatabaseDataTypeMapDao() {
        return productDatabaseDataTypeMapDao;
    }

    /**
         *  Set ProductDatabaseDataTypeMap DAO Instance
         */
    public void setProductDatabaseDataTypeMapDao(
        com.ourteam.product.model.dao.IProductDatabaseDataTypeMapDAO aDao) {
        productDatabaseDataTypeMapDao = aDao;
    }

    /**
         *  Get ProductModelCodeTemplate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelCodeTemplateDAO getProductModelCodeTemplateDao() {
        return productModelCodeTemplateDao;
    }

    /**
         *  Set ProductModelCodeTemplate DAO Instance
         */
    public void setProductModelCodeTemplateDao(
        com.ourteam.product.model.dao.IProductModelCodeTemplateDAO aDao) {
        productModelCodeTemplateDao = aDao;
    }

    /**
         *  Get ProductModelServiceFeatureRelate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelServiceFeatureRelateDAO getProductModelServiceFeatureRelateDao() {
        return productModelServiceFeatureRelateDao;
    }

    /**
         *  Set ProductModelServiceFeatureRelate DAO Instance
         */
    public void setProductModelServiceFeatureRelateDao(
        com.ourteam.product.model.dao.IProductModelServiceFeatureRelateDAO aDao) {
        productModelServiceFeatureRelateDao = aDao;
    }

    /**
         *  Get ProductModelAction DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelActionDAO getProductModelActionDao() {
        return productModelActionDao;
    }

    /**
         *  Set ProductModelAction DAO Instance
         */
    public void setProductModelActionDao(
        com.ourteam.product.model.dao.IProductModelActionDAO aDao) {
        productModelActionDao = aDao;
    }

    /**
         *  Get ProductModelBase DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelBaseDAO getProductModelBaseDao() {
        return productModelBaseDao;
    }

    /**
         *  Set ProductModelBase DAO Instance
         */
    public void setProductModelBaseDao(
        com.ourteam.product.model.dao.IProductModelBaseDAO aDao) {
        productModelBaseDao = aDao;
    }

    /**
         *  Get ProductModelBaseRelate DAO Instance
         */
    public com.ourteam.product.model.dao.IProductModelBaseRelateDAO getProductModelBaseRelateDao() {
        return productModelBaseRelateDao;
    }

    /**
         *  Set ProductModelBaseRelate DAO Instance
         */
    public void setProductModelBaseRelateDao(
        com.ourteam.product.model.dao.IProductModelBaseRelateDAO aDao) {
        productModelBaseRelateDao = aDao;
    }

    /**
         *  Get SystemEventLogService Instance
        */
    public com.ourteam.system.service.ISystemEventLogService getSystemEventLogService() {
        return systemEventLogService;
    }

    /**
     *  Set SystemEventLogService Instance
    */
    public void setSystemEventLogService(
        com.ourteam.system.service.ISystemEventLogService aService) {
        systemEventLogService = aService;
    }

    /**
         *  Get SysUserService Instance
        */
    public com.ourteam.system.service.ISysUserService getSysUserService() {
        return sysUserService;
    }

    /**
     *  Set SysUserService Instance
    */
    public void setSysUserService(
        com.ourteam.system.service.ISysUserService aService) {
        sysUserService = aService;
    }

    /**
     *
    
     * @param productModelDomain
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelDomain(
        final com.ourteam.product.model.domain.ProductModelDomainBean productModelDomain)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelDomain(
        final com.ourteam.product.model.domain.ProductModelDomainBean productModelDomain)
        throws Exception {
        try {
            if (productModelDomain == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelDomain] Value is NULL");
            }

            doAddNewProductModelDomain(productModelDomain);
        } catch (Exception e) {
            logger.error("do addNewProductModelDomain error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelDomain
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelDomain(
        final com.ourteam.product.model.domain.ProductModelDomainBean productModelDomain)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelDomain(
        final com.ourteam.product.model.domain.ProductModelDomainBean productModelDomain)
        throws Exception {
        try {
            if (productModelDomain == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelDomain] Value is NULL");
            }

            doModifyProductModelDomain(productModelDomain);
        } catch (Exception e) {
            logger.error("do modifyProductModelDomain error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelDomainIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelDomains(
        final long[] productModelDomainIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelDomains(final long[] productModelDomainIds)
        throws Exception {
        try {
            doDeleteProductModelDomains(productModelDomainIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelDomains error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelDomainId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelDomainBean doGetProductModelDomainById(
        final long productModelDomainId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelDomainBean getProductModelDomainById(
        final long productModelDomainId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelDomainBean result = doGetProductModelDomainById(productModelDomainId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelDomainById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelDomainBean[] doQueryProductModelDomains(
        final com.ourteam.product.model.dao.ProductModelDomainDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelDomainBean[] queryProductModelDomains(
        final com.ourteam.product.model.dao.ProductModelDomainDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelDomainBean[] result = doQueryProductModelDomains(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelDomains error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelDomainCount(
        final com.ourteam.product.model.dao.ProductModelDomainDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelDomainCount(
        final com.ourteam.product.model.dao.ProductModelDomainDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelDomainCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelDomainCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPackage
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelPackage(
        final com.ourteam.product.model.domain.ProductModelPackageBean productModelPackage)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelPackage(
        final com.ourteam.product.model.domain.ProductModelPackageBean productModelPackage)
        throws Exception {
        try {
            if (productModelPackage == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelPackage] Value is NULL");
            }

            doAddNewProductModelPackage(productModelPackage);
        } catch (Exception e) {
            logger.error("do addNewProductModelPackage error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPackage
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelPackage(
        final com.ourteam.product.model.domain.ProductModelPackageBean productModelPackage)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelPackage(
        final com.ourteam.product.model.domain.ProductModelPackageBean productModelPackage)
        throws Exception {
        try {
            if (productModelPackage == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelPackage] Value is NULL");
            }

            doModifyProductModelPackage(productModelPackage);
        } catch (Exception e) {
            logger.error("do modifyProductModelPackage error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPackageIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelPackages(
        final long[] productModelPackageIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelPackages(final long[] productModelPackageIds)
        throws Exception {
        try {
            doDeleteProductModelPackages(productModelPackageIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelPackages error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPackageId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPackageBean doGetProductModelPackageById(
        final long productModelPackageId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPackageBean getProductModelPackageById(
        final long productModelPackageId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPackageBean result = doGetProductModelPackageById(productModelPackageId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelPackageById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPackageBean[] doQueryProductModelPackages(
        final com.ourteam.product.model.dao.ProductModelPackageDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPackageBean[] queryProductModelPackages(
        final com.ourteam.product.model.dao.ProductModelPackageDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPackageBean[] result = doQueryProductModelPackages(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelPackages error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelPackageCount(
        final com.ourteam.product.model.dao.ProductModelPackageDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelPackageCount(
        final com.ourteam.product.model.dao.ProductModelPackageDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelPackageCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelPackageCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productDatabase
    
     * @throws Exception
     */
    protected abstract void doAddNewProductDatabase(
        final com.ourteam.product.model.domain.ProductDatabaseBean productDatabase)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductDatabase(
        final com.ourteam.product.model.domain.ProductDatabaseBean productDatabase)
        throws Exception {
        try {
            if (productDatabase == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productDatabase] Value is NULL");
            }

            doAddNewProductDatabase(productDatabase);
        } catch (Exception e) {
            logger.error("do addNewProductDatabase error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productDatabase
    
     * @throws Exception
     */
    protected abstract void doModifyProductDatabase(
        final com.ourteam.product.model.domain.ProductDatabaseBean productDatabase)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductDatabase(
        final com.ourteam.product.model.domain.ProductDatabaseBean productDatabase)
        throws Exception {
        try {
            if (productDatabase == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productDatabase] Value is NULL");
            }

            doModifyProductDatabase(productDatabase);
        } catch (Exception e) {
            logger.error("do modifyProductDatabase error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productDatabaseIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductDatabases(
        final long[] productDatabaseIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductDatabases(final long[] productDatabaseIds)
        throws Exception {
        try {
            doDeleteProductDatabases(productDatabaseIds);
        } catch (Exception e) {
            logger.error("do deleteProductDatabases error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productDatabaseId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductDatabaseBean doGetProductDatabaseById(
        final long productDatabaseId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductDatabaseBean getProductDatabaseById(
        final long productDatabaseId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductDatabaseBean result = doGetProductDatabaseById(productDatabaseId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductDatabaseById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductDatabaseBean[] doQueryProductDatabases(
        final com.ourteam.product.model.dao.ProductDatabaseDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductDatabaseBean[] queryProductDatabases(
        final com.ourteam.product.model.dao.ProductDatabaseDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductDatabaseBean[] result = doQueryProductDatabases(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductDatabases error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductDatabaseCount(
        final com.ourteam.product.model.dao.ProductDatabaseDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductDatabaseCount(
        final com.ourteam.product.model.dao.ProductDatabaseDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductDatabaseCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductDatabaseCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectBean
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelObject(
        final com.ourteam.product.model.domain.ProductModelObjectBean productModelObjectBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelObject(
        final com.ourteam.product.model.domain.ProductModelObjectBean productModelObjectBean)
        throws Exception {
        try {
            if (productModelObjectBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelObjectBean] Value is NULL");
            }

            doAddNewProductModelObject(productModelObjectBean);
        } catch (Exception e) {
            logger.error("do addNewProductModelObject error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectBean
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelObject(
        final com.ourteam.product.model.domain.ProductModelObjectBean productModelObjectBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelObject(
        final com.ourteam.product.model.domain.ProductModelObjectBean productModelObjectBean)
        throws Exception {
        try {
            if (productModelObjectBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelObjectBean] Value is NULL");
            }

            doModifyProductModelObject(productModelObjectBean);
        } catch (Exception e) {
            logger.error("do modifyProductModelObject error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectBeanId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelObjectBean doGetProductModelObjectById(
        final long productModelObjectBeanId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelObjectBean getProductModelObjectById(
        final long productModelObjectBeanId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelObjectBean result = doGetProductModelObjectById(productModelObjectBeanId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelObjectById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelObjectBean[] doQueryProductModelObjects(
        final com.ourteam.product.model.dao.ProductModelObjectDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelObjectBean[] queryProductModelObjects(
        final com.ourteam.product.model.dao.ProductModelObjectDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelObjectBean[] result = doQueryProductModelObjects(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelObjects error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelObjectCount(
        final com.ourteam.product.model.dao.ProductModelObjectDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelObjectCount(
        final com.ourteam.product.model.dao.ProductModelObjectDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelObjectCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelObjectCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectBeanIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelObjects(
        final long[] productModelObjectBeanIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    //@Transactional
    public void deleteProductModelObjects(
        final long[] productModelObjectBeanIds) throws Exception {
        try {
            doDeleteProductModelObjects(productModelObjectBeanIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelObjects error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyBean
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelProperty(
        final com.ourteam.product.model.domain.ProductModelPropertyBean productModelPropertyBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelProperty(
        final com.ourteam.product.model.domain.ProductModelPropertyBean productModelPropertyBean)
        throws Exception {
        try {
            if (productModelPropertyBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelPropertyBean] Value is NULL");
            }

            doAddNewProductModelProperty(productModelPropertyBean);
        } catch (Exception e) {
            logger.error("do addNewProductModelProperty error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyBean
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelProperty(
        final com.ourteam.product.model.domain.ProductModelPropertyBean productModelPropertyBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelProperty(
        final com.ourteam.product.model.domain.ProductModelPropertyBean productModelPropertyBean)
        throws Exception {
        try {
            if (productModelPropertyBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelPropertyBean] Value is NULL");
            }

            doModifyProductModelProperty(productModelPropertyBean);
        } catch (Exception e) {
            logger.error("do modifyProductModelProperty error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyBeanIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelProperties(
        final long[] productModelPropertyBeanIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelProperties(
        final long[] productModelPropertyBeanIds) throws Exception {
        try {
            doDeleteProductModelProperties(productModelPropertyBeanIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelProperties error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyBeanId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyBean doGetProductModelPropertyById(
        final long productModelPropertyBeanId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyBean getProductModelPropertyById(
        final long productModelPropertyBeanId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyBean result = doGetProductModelPropertyById(productModelPropertyBeanId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelPropertyById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyBean[] doQueryProductModelProperties(
        final com.ourteam.product.model.dao.ProductModelPropertyDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyBean[] queryProductModelProperties(
        final com.ourteam.product.model.dao.ProductModelPropertyDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyBean[] result = doQueryProductModelProperties(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelProperties error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelPropertyCount(
        final com.ourteam.product.model.dao.ProductModelPropertyDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelPropertyCount(
        final com.ourteam.product.model.dao.ProductModelPropertyDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelPropertyCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelPropertyCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyBean[] doGetProductPropertiesByObjectId(
        final long productModelObjectId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyBean[] getProductPropertiesByObjectId(
        final long productModelObjectId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyBean[] result = doGetProductPropertiesByObjectId(productModelObjectId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductPropertiesByObjectId error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectRelateBean
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelObjectRelate(
        final com.ourteam.product.model.domain.ProductModelObjectRelateBean productModelObjectRelateBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelObjectRelate(
        final com.ourteam.product.model.domain.ProductModelObjectRelateBean productModelObjectRelateBean)
        throws Exception {
        try {
            if (productModelObjectRelateBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelObjectRelateBean] Value is NULL");
            }

            doAddNewProductModelObjectRelate(productModelObjectRelateBean);
        } catch (Exception e) {
            logger.error("do addNewProductModelObjectRelate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectRelateBeanIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelObjectRelates(
        final long[] productModelObjectRelateBeanIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelObjectRelates(
        final long[] productModelObjectRelateBeanIds) throws Exception {
        try {
            doDeleteProductModelObjectRelates(productModelObjectRelateBeanIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelObjectRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectRelateId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelObjectRelateBean doGetProductModelObjectRelateById(
        final long productModelObjectRelateId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelObjectRelateBean getProductModelObjectRelateById(
        final long productModelObjectRelateId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelObjectRelateBean result =
                doGetProductModelObjectRelateById(productModelObjectRelateId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelObjectRelateById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelObjectRelateBean[] doQueryProductModelObjectRelates(
        final com.ourteam.product.model.dao.ProductModelObjectRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelObjectRelateBean[] queryProductModelObjectRelates(
        final com.ourteam.product.model.dao.ProductModelObjectRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelObjectRelateBean[] result =
                doQueryProductModelObjectRelates(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelObjectRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelObjectRelateCount(
        final com.ourteam.product.model.dao.ProductModelObjectRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelObjectRelateCount(
        final com.ourteam.product.model.dao.ProductModelObjectRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            if (queryBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [queryBean] Value is NULL");
            }

            int result = doQueryProductModelObjectRelateCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelObjectRelateCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyRelateBeans
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelPropertyRelates(
        final com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] productModelPropertyRelateBeans)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelPropertyRelates(
        final com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] productModelPropertyRelateBeans)
        throws Exception {
        try {
            if (productModelPropertyRelateBeans == null) {
                logger.warn(
                    "The Parameter [productModelPropertyRelateBeans] Value is NULL,Exit");

                return;
            }

            doAddNewProductModelPropertyRelates(productModelPropertyRelateBeans);
        } catch (Exception e) {
            logger.error("do addNewProductModelPropertyRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyRelateBean
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelPropertyRelate(
        final com.ourteam.product.model.domain.ProductModelPropertyRelateBean productModelPropertyRelateBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelPropertyRelate(
        final com.ourteam.product.model.domain.ProductModelPropertyRelateBean productModelPropertyRelateBean)
        throws Exception {
        try {
            if (productModelPropertyRelateBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelPropertyRelateBean] Value is NULL");
            }

            doModifyProductModelPropertyRelate(productModelPropertyRelateBean);
        } catch (Exception e) {
            logger.error("do modifyProductModelPropertyRelate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyRelateIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelPropertyRelates(
        final long[] productModelPropertyRelateIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelPropertyRelates(
        final long[] productModelPropertyRelateIds) throws Exception {
        try {
            doDeleteProductModelPropertyRelates(productModelPropertyRelateIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelPropertyRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelPropertyRelateId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyRelateBean doGetProductModelPropertyRelateById(
        final long productModelPropertyRelateId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyRelateBean getProductModelPropertyRelateById(
        final long productModelPropertyRelateId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyRelateBean result =
                doGetProductModelPropertyRelateById(productModelPropertyRelateId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelPropertyRelateById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] doQueryProductModelPropertyRelates(
        final com.ourteam.product.model.dao.ProductModelPropertyRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] queryProductModelPropertyRelates(
        final com.ourteam.product.model.dao.ProductModelPropertyRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] result =
                doQueryProductModelPropertyRelates(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelPropertyRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelPropertyRelateCount(
        final com.ourteam.product.model.dao.ProductModelPropertyRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelPropertyRelateCount(
        final com.ourteam.product.model.dao.ProductModelPropertyRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelPropertyRelateCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelPropertyRelateCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceBean
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelService(
        final com.ourteam.product.model.domain.ProductModelServiceBean productModelServiceBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelService(
        final com.ourteam.product.model.domain.ProductModelServiceBean productModelServiceBean)
        throws Exception {
        try {
            if (productModelServiceBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceBean] Value is NULL");
            }

            doAddNewProductModelService(productModelServiceBean);
        } catch (Exception e) {
            logger.error("do addNewProductModelService error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceBean
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelService(
        final com.ourteam.product.model.domain.ProductModelServiceBean productModelServiceBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelService(
        final com.ourteam.product.model.domain.ProductModelServiceBean productModelServiceBean)
        throws Exception {
        try {
            doModifyProductModelService(productModelServiceBean);
        } catch (Exception e) {
            logger.error("do modifyProductModelService error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelServices(
        final long[] productModelServiceIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelServices(final long[] productModelServiceIds)
        throws Exception {
        try {
            doDeleteProductModelServices(productModelServiceIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelServices error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceBean doGetProductModelServiceById(
        final long productModelServiceId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceBean getProductModelServiceById(
        final long productModelServiceId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceBean result = doGetProductModelServiceById(productModelServiceId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceBean[] doQueryProductModelServices(
        final com.ourteam.product.model.dao.ProductModelServiceDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceBean[] queryProductModelServices(
        final com.ourteam.product.model.dao.ProductModelServiceDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceBean[] result = doQueryProductModelServices(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServices error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelServiceCount(
        final com.ourteam.product.model.dao.ProductModelServiceDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelServiceCount(
        final com.ourteam.product.model.dao.ProductModelServiceDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelServiceCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceCount error", e);
            throw e;
        }
    }

    /**
     * 新增产品服务参数
    
     * @param productModelServiceParameterBean
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelServiceParameter(
        final com.ourteam.product.model.domain.ProductModelServiceParameterBean productModelServiceParameterBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelServiceParameter(
        final com.ourteam.product.model.domain.ProductModelServiceParameterBean productModelServiceParameterBean)
        throws Exception {
        try {
            if (productModelServiceParameterBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceParameterBean] Value is NULL");
            }

            doAddNewProductModelServiceParameter(productModelServiceParameterBean);
        } catch (Exception e) {
            logger.error("do addNewProductModelServiceParameter error", e);
            throw e;
        }
    }

    /**
     * 修改产品服务参数
    
     * @param productModelServiceParameterBean
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelServiceParameter(
        final com.ourteam.product.model.domain.ProductModelServiceParameterBean productModelServiceParameterBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelServiceParameter(
        final com.ourteam.product.model.domain.ProductModelServiceParameterBean productModelServiceParameterBean)
        throws Exception {
        try {
            if (productModelServiceParameterBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceParameterBean] Value is NULL");
            }

            doModifyProductModelServiceParameter(productModelServiceParameterBean);
        } catch (Exception e) {
            logger.error("do modifyProductModelServiceParameter error", e);
            throw e;
        }
    }

    /**
     * 删除产品服务参数
    
     * @param productModelServiceParameterIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelServiceParameters(
        final long[] productModelServiceParameterIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelServiceParameters(
        final long[] productModelServiceParameterIds) throws Exception {
        try {
            doDeleteProductModelServiceParameters(productModelServiceParameterIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelServiceParameters error", e);
            throw e;
        }
    }

    /**
     * 根据ID取得产品服务参数
    
     * @param productModelServiceParameterId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceParameterBean doGetProductModelServiceParameterById(
        final long productModelServiceParameterId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceParameterBean getProductModelServiceParameterById(
        final long productModelServiceParameterId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceParameterBean result =
                doGetProductModelServiceParameterById(productModelServiceParameterId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceParameterById error", e);
            throw e;
        }
    }

    /**
     * 查询产品服务参数
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceParameterBean[] doQueryProductModelServiceParameters(
        final com.ourteam.product.model.dao.ProductModelServiceParameterDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceParameterBean[] queryProductModelServiceParameters(
        final com.ourteam.product.model.dao.ProductModelServiceParameterDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceParameterBean[] result =
                doQueryProductModelServiceParameters(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceParameters error", e);
            throw e;
        }
    }

    /**
     * 查询产品服务参数数量
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelServiceParameterCount(
        final com.ourteam.product.model.dao.ProductModelServiceParameterDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelServiceParameterCount(
        final com.ourteam.product.model.dao.ProductModelServiceParameterDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelServiceParameterCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceParameterCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param serviceId
    
     * @param parameters
    
     * @throws Exception
     */
    protected abstract void doSetProductModelServiceParameters(
        final long serviceId,
        final com.ourteam.product.model.domain.ProductModelServiceParameterBean[] parameters)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void setProductModelServiceParameters(final long serviceId,
        final com.ourteam.product.model.domain.ProductModelServiceParameterBean[] parameters)
        throws Exception {
        try {
            doSetProductModelServiceParameters(serviceId, parameters);
        } catch (Exception e) {
            logger.error("do setProductModelServiceParameters error", e);
            throw e;
        }
    }

    /**
     * 取得产品模型对象属�??
    
     * @param objectId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyBean[] doGetProductModelObjectProperties(
        final long objectId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyBean[] getProductModelObjectProperties(
        final long objectId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyBean[] result = doGetProductModelObjectProperties(objectId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelObjectProperties error", e);
            throw e;
        }
    }

    /**
     * 取得产品模型属�?�关�?
    
     * @param propertyModelObjectRelateId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] doGetProductModelPropertyRelates(
        final long propertyModelObjectRelateId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] getProductModelPropertyRelates(
        final long propertyModelObjectRelateId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] result =
                doGetProductModelPropertyRelates(propertyModelObjectRelateId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelPropertyRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectRelateBean
    
     * @param productModelPropertyRelateBean
    
     * @throws Exception
     */
    protected abstract void doSetProductModelObjectRelated(
        final com.ourteam.product.model.domain.ProductModelObjectRelateBean productModelObjectRelateBean,
        final com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] productModelPropertyRelateBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void setProductModelObjectRelated(
        final com.ourteam.product.model.domain.ProductModelObjectRelateBean productModelObjectRelateBean,
        final com.ourteam.product.model.domain.ProductModelPropertyRelateBean[] productModelPropertyRelateBean)
        throws Exception {
        try {
            if (productModelObjectRelateBean == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelObjectRelateBean] Value is NULL");
            }

            doSetProductModelObjectRelated(productModelObjectRelateBean,
                productModelPropertyRelateBean);
        } catch (Exception e) {
            logger.error("do setProductModelObjectRelated error", e);
            throw e;
        }
    }

    /**
     * 根据关联类型取得已关联的对象属�??
    
     * @param productModelObjectId
    
     * @param relateTypes
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyBean[] doGetProductModelRelatedPropertiesByType(
        final long productModelObjectId,
        final com.ourteam.product.model.domain.ProductModelRelateTypeEnum[] relateTypes)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyBean[] getProductModelRelatedPropertiesByType(
        final long productModelObjectId,
        final com.ourteam.product.model.domain.ProductModelRelateTypeEnum[] relateTypes)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyBean[] result = doGetProductModelRelatedPropertiesByType(productModelObjectId,
                    relateTypes);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelRelatedPropertiesByType error", e);
            throw e;
        }
    }

    /**
     * 根据关联类型取得没有关联的对象属�?
    
     * @param productModelObjectId
    
     * @param relateTypeEnums
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelPropertyBean[] doGetProductModelNotRelatedPropertiesByType(
        final long productModelObjectId,
        final com.ourteam.product.model.domain.ProductModelRelateTypeEnum[] relateTypeEnums)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelPropertyBean[] getProductModelNotRelatedPropertiesByType(
        final long productModelObjectId,
        final com.ourteam.product.model.domain.ProductModelRelateTypeEnum[] relateTypeEnums)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelPropertyBean[] result = doGetProductModelNotRelatedPropertiesByType(productModelObjectId,
                    relateTypeEnums);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelNotRelatedPropertiesByType error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectId
    
     * @param relateTypeEnums
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelObjectBean[] doGetRelatedProductModelObjects(
        final long productModelObjectId,
        final com.ourteam.product.model.domain.ProductModelRelateTypeEnum[] relateTypeEnums)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelObjectBean[] getRelatedProductModelObjects(
        final long productModelObjectId,
        final com.ourteam.product.model.domain.ProductModelRelateTypeEnum[] relateTypeEnums)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelObjectBean[] result = doGetRelatedProductModelObjects(productModelObjectId,
                    relateTypeEnums);

            return result;
        } catch (Exception e) {
            logger.error("do getRelatedProductModelObjects error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param propertyIds
    
     * @throws Exception
     */
    protected abstract void doSetProductModelPropertySort(
        final long[] propertyIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void setProductModelPropertySort(final long[] propertyIds)
        throws Exception {
        try {
            doSetProductModelPropertySort(propertyIds);
        } catch (Exception e) {
            logger.error("do setProductModelPropertySort error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param objectRelateIds
    
     * @throws Exception
     */
    protected abstract void doSetProductModelObjectRelateSort(
        final long[] objectRelateIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void setProductModelObjectRelateSort(final long[] objectRelateIds)
        throws Exception {
        try {
            doSetProductModelObjectRelateSort(objectRelateIds);
        } catch (Exception e) {
            logger.error("do setProductModelObjectRelateSort error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelObjectId
    
     * @throws Exception
     */
    protected abstract boolean doCanDeleteProductModelObject(
        final long productModelObjectId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public boolean canDeleteProductModelObject(final long productModelObjectId)
        throws Exception {
        try {
            boolean result = doCanDeleteProductModelObject(productModelObjectId);

            return result;
        } catch (Exception e) {
            logger.error("do canDeleteProductModelObject error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplate
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelServiceTemplate(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateBean productModelServiceTemplate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelServiceTemplate(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateBean productModelServiceTemplate)
        throws Exception {
        try {
            if (productModelServiceTemplate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceTemplate] Value is NULL");
            }

            doAddNewProductModelServiceTemplate(productModelServiceTemplate);
        } catch (Exception e) {
            logger.error("do addNewProductModelServiceTemplate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplate
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelServiceTemplate(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateBean productModelServiceTemplate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelServiceTemplate(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateBean productModelServiceTemplate)
        throws Exception {
        try {
            if (productModelServiceTemplate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceTemplate] Value is NULL");
            }

            doModifyProductModelServiceTemplate(productModelServiceTemplate);
        } catch (Exception e) {
            logger.error("do modifyProductModelServiceTemplate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelServiceTemplates(
        final long[] productModelServiceTemplateIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelServiceTemplates(
        final long[] productModelServiceTemplateIds) throws Exception {
        try {
            doDeleteProductModelServiceTemplates(productModelServiceTemplateIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelServiceTemplates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceTemplateBean[] doQueryProductModelServiceTemplates(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceTemplateBean[] queryProductModelServiceTemplates(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceTemplateBean[] result =
                doQueryProductModelServiceTemplates(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceTemplates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelServiceTemplateCount(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelServiceTemplateCount(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelServiceTemplateCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceTemplateCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceTemplateBean doGetProductModelServiceTemplateById(
        final long productModelServiceTemplateId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceTemplateBean getProductModelServiceTemplateById(
        final long productModelServiceTemplateId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceTemplateBean result =
                doGetProductModelServiceTemplateById(productModelServiceTemplateId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceTemplateById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateItem
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelServiceTemplateItem(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean productModelServiceTemplateItem)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelServiceTemplateItem(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean productModelServiceTemplateItem)
        throws Exception {
        try {
            if (productModelServiceTemplateItem == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceTemplateItem] Value is NULL");
            }

            doAddNewProductModelServiceTemplateItem(productModelServiceTemplateItem);
        } catch (Exception e) {
            logger.error("do addNewProductModelServiceTemplateItem error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateItem
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelServiceTemplateItem(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean productModelServiceTemplateItem)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelServiceTemplateItem(
        final com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean productModelServiceTemplateItem)
        throws Exception {
        try {
            if (productModelServiceTemplateItem == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [productModelServiceTemplateItem] Value is NULL");
            }

            doModifyProductModelServiceTemplateItem(productModelServiceTemplateItem);
        } catch (Exception e) {
            logger.error("do modifyProductModelServiceTemplateItem error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateItemIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelServiceTemplateItems(
        final long[] productModelServiceTemplateItemIds)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelServiceTemplateItems(
        final long[] productModelServiceTemplateItemIds)
        throws Exception {
        try {
            doDeleteProductModelServiceTemplateItems(productModelServiceTemplateItemIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelServiceTemplateItems error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateItemId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean doGetProductModelServiceTemplateItemById(
        final long productModelServiceTemplateItemId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean getProductModelServiceTemplateItemById(
        final long productModelServiceTemplateItemId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean result =
                doGetProductModelServiceTemplateItemById(productModelServiceTemplateItemId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceTemplateItemById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean[] doQueryProductModelServiceTemplateItems(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateItemDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean[] queryProductModelServiceTemplateItems(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateItemDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceTemplateItemBean[] result =
                doQueryProductModelServiceTemplateItems(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceTemplateItems error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelServiceTemplateItemCount(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateItemDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelServiceTemplateItemCount(
        final com.ourteam.product.model.dao.ProductModelServiceTemplateItemDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelServiceTemplateItemCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceTemplateItemCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param serviceTemplateItemId
    
     * @param serviceParameterTemplates
    
     * @throws Exception
     */
    protected abstract void doSetProductModelServiceParameterTemplates(
        final long serviceTemplateItemId,
        final com.ourteam.product.model.domain.ProductModelServiceParameterTemplateBean[] serviceParameterTemplates)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void setProductModelServiceParameterTemplates(
        final long serviceTemplateItemId,
        final com.ourteam.product.model.domain.ProductModelServiceParameterTemplateBean[] serviceParameterTemplates)
        throws Exception {
        try {
            doSetProductModelServiceParameterTemplates(serviceTemplateItemId,
                serviceParameterTemplates);
        } catch (Exception e) {
            logger.error("do setProductModelServiceParameterTemplates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceTemplateItemId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceParameterTemplateBean[] doGetProductModelServiceTemplateItemParameters(
        final long productModelServiceTemplateItemId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceParameterTemplateBean[] getProductModelServiceTemplateItemParameters(
        final long productModelServiceTemplateItemId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceParameterTemplateBean[] result =
                doGetProductModelServiceTemplateItemParameters(productModelServiceTemplateItemId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceTemplateItemParameters error",
                e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductDatabaseDataTypeMap
    
     * @throws Exception
     */
    protected abstract void doAddNewProductDatabaseDataTypeMap(
        final com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean aProductDatabaseDataTypeMap)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductDatabaseDataTypeMap(
        final com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean aProductDatabaseDataTypeMap)
        throws Exception {
        try {
            if (aProductDatabaseDataTypeMap == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductDatabaseDataTypeMap] Value is NULL");
            }

            doAddNewProductDatabaseDataTypeMap(aProductDatabaseDataTypeMap);
        } catch (Exception e) {
            logger.error("do addNewProductDatabaseDataTypeMap error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductDatabaseDataTypeMap
    
     * @throws Exception
     */
    protected abstract void doModifyProductDatabaseDataTypeMap(
        final com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean aProductDatabaseDataTypeMap)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductDatabaseDataTypeMap(
        final com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean aProductDatabaseDataTypeMap)
        throws Exception {
        try {
            if (aProductDatabaseDataTypeMap == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductDatabaseDataTypeMap] Value is NULL");
            }

            doModifyProductDatabaseDataTypeMap(aProductDatabaseDataTypeMap);
        } catch (Exception e) {
            logger.error("do modifyProductDatabaseDataTypeMap error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean[] doQueryProductDatabaseDataTypeMaps(
        final com.ourteam.product.model.dao.ProductDatabaseDataTypeMapDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean[] queryProductDatabaseDataTypeMaps(
        final com.ourteam.product.model.dao.ProductDatabaseDataTypeMapDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean[] result =
                doQueryProductDatabaseDataTypeMaps(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductDatabaseDataTypeMaps error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductDatabaseDataTypeMapCount(
        final com.ourteam.product.model.dao.ProductDatabaseDataTypeMapDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductDatabaseDataTypeMapCount(
        final com.ourteam.product.model.dao.ProductDatabaseDataTypeMapDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductDatabaseDataTypeMapCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductDatabaseDataTypeMapCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductDatabaseDataTypeMapId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean doGetProductDatabaseDataTypeMapById(
        final long aProductDatabaseDataTypeMapId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean getProductDatabaseDataTypeMapById(
        final long aProductDatabaseDataTypeMapId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductDatabaseDataTypeMapBean result =
                doGetProductDatabaseDataTypeMapById(aProductDatabaseDataTypeMapId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductDatabaseDataTypeMapById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @throws Exception
     */
    protected abstract java.util.Map<String, String> doGetProductDatabaseDataTypeMaps()
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public java.util.Map<String, String> getProductDatabaseDataTypeMaps()
        throws Exception {
        try {
            java.util.Map<String, String> result = doGetProductDatabaseDataTypeMaps();

            return result;
        } catch (Exception e) {
            logger.error("do getProductDatabaseDataTypeMaps error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductDatabaseDataTypeMapIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductDatabaseDataTypeMaps(
        final long[] aProductDatabaseDataTypeMapIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductDatabaseDataTypeMaps(
        final long[] aProductDatabaseDataTypeMapIds) throws Exception {
        try {
            doDeleteProductDatabaseDataTypeMaps(aProductDatabaseDataTypeMapIds);
        } catch (Exception e) {
            logger.error("do deleteProductDatabaseDataTypeMaps error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelObjectRelate
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelObjectRelate(
        final com.ourteam.product.model.domain.ProductModelObjectRelateBean aProductModelObjectRelate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelObjectRelate(
        final com.ourteam.product.model.domain.ProductModelObjectRelateBean aProductModelObjectRelate)
        throws Exception {
        try {
            if (aProductModelObjectRelate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelObjectRelate] Value is NULL");
            }

            doModifyProductModelObjectRelate(aProductModelObjectRelate);
        } catch (Exception e) {
            logger.error("do modifyProductModelObjectRelate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelCodeTemplate
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelCodeTemplate(
        final com.ourteam.product.model.domain.ProductModelCodeTemplateBean aProductModelCodeTemplate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelCodeTemplate(
        final com.ourteam.product.model.domain.ProductModelCodeTemplateBean aProductModelCodeTemplate)
        throws Exception {
        try {
            if (aProductModelCodeTemplate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelCodeTemplate] Value is NULL");
            }

            doAddNewProductModelCodeTemplate(aProductModelCodeTemplate);
        } catch (Exception e) {
            logger.error("do addNewProductModelCodeTemplate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelCodeTemplate
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelCodeTemplate(
        final com.ourteam.product.model.domain.ProductModelCodeTemplateBean aProductModelCodeTemplate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelCodeTemplate(
        final com.ourteam.product.model.domain.ProductModelCodeTemplateBean aProductModelCodeTemplate)
        throws Exception {
        try {
            if (aProductModelCodeTemplate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelCodeTemplate] Value is NULL");
            }

            doModifyProductModelCodeTemplate(aProductModelCodeTemplate);
        } catch (Exception e) {
            logger.error("do modifyProductModelCodeTemplate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelCodeTemplateIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelCodeTemplates(
        final long[] aProductModelCodeTemplateIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelCodeTemplates(
        final long[] aProductModelCodeTemplateIds) throws Exception {
        try {
            doDeleteProductModelCodeTemplates(aProductModelCodeTemplateIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelCodeTemplates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelCodeTemplateId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelCodeTemplateBean doGetProductModelCodeTemplateById(
        final long aProductModelCodeTemplateId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelCodeTemplateBean getProductModelCodeTemplateById(
        final long aProductModelCodeTemplateId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelCodeTemplateBean result =
                doGetProductModelCodeTemplateById(aProductModelCodeTemplateId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelCodeTemplateById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelCodeTemplateBean[] doQueryProductModelCodeTemplates(
        final com.ourteam.product.model.dao.ProductModelCodeTemplateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelCodeTemplateBean[] queryProductModelCodeTemplates(
        final com.ourteam.product.model.dao.ProductModelCodeTemplateDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelCodeTemplateBean[] result =
                doQueryProductModelCodeTemplates(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelCodeTemplates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelCodeTemplateCount(
        final com.ourteam.product.model.dao.ProductModelCodeTemplateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelCodeTemplateCount(
        final com.ourteam.product.model.dao.ProductModelCodeTemplateDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelCodeTemplateCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelCodeTemplateCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param templateCode
    
     * @param aProductModelCodeTemplate
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelCodeTemplateVersion(
        final String templateCode,
        final com.ourteam.product.model.domain.ProductModelCodeTemplateBean aProductModelCodeTemplate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelCodeTemplateVersion(
        final String templateCode,
        final com.ourteam.product.model.domain.ProductModelCodeTemplateBean aProductModelCodeTemplate)
        throws Exception {
        try {
            if (templateCode == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [templateCode] Value is NULL");
            }

            if (aProductModelCodeTemplate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelCodeTemplate] Value is NULL");
            }

            doAddNewProductModelCodeTemplateVersion(templateCode,
                aProductModelCodeTemplate);
        } catch (Exception e) {
            logger.error("do addNewProductModelCodeTemplateVersion error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelCodeTemplateId
    
     * @throws Exception
     */
    protected abstract void doSwitchProductModelCodeTemplateVersion(
        final long productModelCodeTemplateId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void switchProductModelCodeTemplateVersion(
        final long productModelCodeTemplateId) throws Exception {
        try {
            doSwitchProductModelCodeTemplateVersion(productModelCodeTemplateId);
        } catch (Exception e) {
            logger.error("do switchProductModelCodeTemplateVersion error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelServiceFeatureRelate
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelServiceFeatureRelate(
        final com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean aProductModelServiceFeatureRelate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelServiceFeatureRelate(
        final com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean aProductModelServiceFeatureRelate)
        throws Exception {
        try {
            if (aProductModelServiceFeatureRelate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelServiceFeatureRelate] Value is NULL");
            }

            doAddNewProductModelServiceFeatureRelate(aProductModelServiceFeatureRelate);
        } catch (Exception e) {
            logger.error("do addNewProductModelServiceFeatureRelate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelServiceFeatureRelate
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelServiceFeatureRelate(
        final com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean aProductModelServiceFeatureRelate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelServiceFeatureRelate(
        final com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean aProductModelServiceFeatureRelate)
        throws Exception {
        try {
            if (aProductModelServiceFeatureRelate == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelServiceFeatureRelate] Value is NULL");
            }

            doModifyProductModelServiceFeatureRelate(aProductModelServiceFeatureRelate);
        } catch (Exception e) {
            logger.error("do modifyProductModelServiceFeatureRelate error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelServiceFeatureRelateId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean doGetProductModelServiceFeatureRelateById(
        final long aProductModelServiceFeatureRelateId)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean getProductModelServiceFeatureRelateById(
        final long aProductModelServiceFeatureRelateId)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean result =
                doGetProductModelServiceFeatureRelateById(aProductModelServiceFeatureRelateId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceFeatureRelateById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelServiceFeatureRelateIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelServiceFeatureRelates(
        final long[] aProductModelServiceFeatureRelateIds)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelServiceFeatureRelates(
        final long[] aProductModelServiceFeatureRelateIds)
        throws Exception {
        try {
            doDeleteProductModelServiceFeatureRelates(aProductModelServiceFeatureRelateIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelServiceFeatureRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] doQueryProductModelServiceFeatureRelates(
        final com.ourteam.product.model.dao.ProductModelServiceFeatureRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] queryProductModelServiceFeatureRelates(
        final com.ourteam.product.model.dao.ProductModelServiceFeatureRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] result =
                doQueryProductModelServiceFeatureRelates(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceFeatureRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelServiceFeatureRelateCount(
        final com.ourteam.product.model.dao.ProductModelServiceFeatureRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelServiceFeatureRelateCount(
        final com.ourteam.product.model.dao.ProductModelServiceFeatureRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelServiceFeatureRelateCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelServiceFeatureRelateCount error",
                e);
            throw e;
        }
    }

    /**
     *
    
     * @param productModelServiceId
    
     * @param aProductModelServiceFeatureRelate
    
     * @throws Exception
     */
    protected abstract void doSetProductModelServiceFeatureRelates(
        final long productModelServiceId,
        final com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] aProductModelServiceFeatureRelate)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void setProductModelServiceFeatureRelates(
        final long productModelServiceId,
        final com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] aProductModelServiceFeatureRelate)
        throws Exception {
        try {
            doSetProductModelServiceFeatureRelates(productModelServiceId,
                aProductModelServiceFeatureRelate);
        } catch (Exception e) {
            logger.error("do setProductModelServiceFeatureRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelServiceId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] doGetProductModelServiceFeatureRelates(
        final long aProductModelServiceId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] getProductModelServiceFeatureRelates(
        final long aProductModelServiceId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelServiceFeatureRelateBean[] result =
                doGetProductModelServiceFeatureRelates(aProductModelServiceId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelServiceFeatureRelates error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelAction
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelAction(
        final com.ourteam.product.model.domain.ProductModelActionBean aProductModelAction)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelAction(
        final com.ourteam.product.model.domain.ProductModelActionBean aProductModelAction)
        throws Exception {
        try {
            if (aProductModelAction == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelAction] Value is NULL");
            }

            doAddNewProductModelAction(aProductModelAction);
        } catch (Exception e) {
            logger.error("do addNewProductModelAction error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelAction
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelAction(
        final com.ourteam.product.model.domain.ProductModelActionBean aProductModelAction)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelAction(
        final com.ourteam.product.model.domain.ProductModelActionBean aProductModelAction)
        throws Exception {
        try {
            if (aProductModelAction == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelAction] Value is NULL");
            }

            doModifyProductModelAction(aProductModelAction);
        } catch (Exception e) {
            logger.error("do modifyProductModelAction error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelActionIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelActions(
        final long[] aProductModelActionIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelActions(final long[] aProductModelActionIds)
        throws Exception {
        try {
            doDeleteProductModelActions(aProductModelActionIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelActions error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelActionId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelActionBean doGetProductModelActionById(
        final long aProductModelActionId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelActionBean getProductModelActionById(
        final long aProductModelActionId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelActionBean result = doGetProductModelActionById(aProductModelActionId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelActionById error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelActionBean[] doQueryProductModelActions(
        final com.ourteam.product.model.dao.ProductModelActionDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelActionBean[] queryProductModelActions(
        final com.ourteam.product.model.dao.ProductModelActionDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelActionBean[] result = doQueryProductModelActions(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelActions error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelActionCount(
        final com.ourteam.product.model.dao.ProductModelActionDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelActionCount(
        final com.ourteam.product.model.dao.ProductModelActionDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelActionCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelActionCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelActionBean[] doGetProductModelActions(
        final long aProductModelId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelActionBean[] getProductModelActions(
        final long aProductModelId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelActionBean[] result = doGetProductModelActions(aProductModelId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelActions error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelBase
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelBase(
        final com.ourteam.product.model.domain.ProductModelBaseBean aProductModelBase)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelBase(
        final com.ourteam.product.model.domain.ProductModelBaseBean aProductModelBase)
        throws Exception {
        try {
            if (aProductModelBase == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelBase] Value is NULL");
            }

            doAddNewProductModelBase(aProductModelBase);
        } catch (Exception e) {
            logger.error("do addNewProductModelBase error", e);
            throw e;
        }
    }

    /**
     * $method.remarks
    
     * @param aProductModelBase
    
     * @throws Exception
     */
    protected abstract void doModifyProductModelBase(
        final com.ourteam.product.model.domain.ProductModelBaseBean aProductModelBase)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifyProductModelBase(
        final com.ourteam.product.model.domain.ProductModelBaseBean aProductModelBase)
        throws Exception {
        try {
            if (aProductModelBase == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [aProductModelBase] Value is NULL");
            }

            doModifyProductModelBase(aProductModelBase);
        } catch (Exception e) {
            logger.error("do modifyProductModelBase error", e);
            throw e;
        }
    }

    /**
     * $method.remarks
    
     * @param aProductModelBaseIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelBases(
        final long[] aProductModelBaseIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelBases(final long[] aProductModelBaseIds)
        throws Exception {
        try {
            doDeleteProductModelBases(aProductModelBaseIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelBases error", e);
            throw e;
        }
    }

    /**
     * $method.remarks
    
     * @param aProductModelBaseId
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelBaseBean doGetProductModelBaseById(
        final long aProductModelBaseId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelBaseBean getProductModelBaseById(
        final long aProductModelBaseId) throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelBaseBean result = doGetProductModelBaseById(aProductModelBaseId);

            return result;
        } catch (Exception e) {
            logger.error("do getProductModelBaseById error", e);
            throw e;
        }
    }

    /**
     * $method.remarks
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelBaseBean[] doQueryProductModelBases(
        final com.ourteam.product.model.dao.ProductModelBaseDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelBaseBean[] queryProductModelBases(
        final com.ourteam.product.model.dao.ProductModelBaseDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelBaseBean[] result = doQueryProductModelBases(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelBases error", e);
            throw e;
        }
    }

    /**
     * $method.remarks
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelBaseCount(
        final com.ourteam.product.model.dao.ProductModelBaseDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelBaseCount(
        final com.ourteam.product.model.dao.ProductModelBaseDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelBaseCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelBaseCount error", e);
            throw e;
        }
    }

    /**
     *
    
     * @param aProductModelBaseRelateBean
    
     * @throws Exception
     */
    protected abstract void doAddNewProductModelBaseRelates(
        final com.ourteam.product.model.domain.ProductModelBaseRelateBean[] aProductModelBaseRelateBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addNewProductModelBaseRelates(
        final com.ourteam.product.model.domain.ProductModelBaseRelateBean[] aProductModelBaseRelateBean)
        throws Exception {
        try {
            if (aProductModelBaseRelateBean == null) {
                logger.warn(
                    "The Parameter [aProductModelBaseRelateBean] Value is NULL,Exit");

                return;
            }

            doAddNewProductModelBaseRelates(aProductModelBaseRelateBean);
        } catch (Exception e) {
            logger.error("do addNewProductModelBaseRelates error", e);
            throw e;
        }
    }

    /**
     * 查询模型库关�?
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.product.model.domain.ProductModelBaseRelateBean[] doQueryProductModelBaseRelates(
        final com.ourteam.product.model.dao.ProductModelBaseRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.product.model.domain.ProductModelBaseRelateBean[] queryProductModelBaseRelates(
        final com.ourteam.product.model.dao.ProductModelBaseRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.product.model.domain.ProductModelBaseRelateBean[] result =
                doQueryProductModelBaseRelates(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelBaseRelates error", e);
            throw e;
        }
    }

    /**
     * 查询模型库关联数�?
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQueryProductModelBaseRelateCount(
        final com.ourteam.product.model.dao.ProductModelBaseRelateDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int queryProductModelBaseRelateCount(
        final com.ourteam.product.model.dao.ProductModelBaseRelateDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQueryProductModelBaseRelateCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do queryProductModelBaseRelateCount error", e);
            throw e;
        }
    }

    /**
     * 删除模型库关�?
    
     * @param aProductModelBaseRelateIds
    
     * @throws Exception
     */
    protected abstract void doDeleteProductModelBaseRelates(
        final long[] aProductModelBaseRelateIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteProductModelBaseRelates(
        final long[] aProductModelBaseRelateIds) throws Exception {
        try {
            doDeleteProductModelBaseRelates(aProductModelBaseRelateIds);
        } catch (Exception e) {
            logger.error("do deleteProductModelBaseRelates error", e);
            throw e;
        }
    }
}
